Software companies frequently offer software products with a set of initial forms, which are the user interfaces (UIs) of the software product. An example of such a software product is a small business accounting application or system in which multiple accounting forms are provided with the initial product. Such forms might include invoice forms, receipt forms, purchase order forms, various accounting forms, etc. This scenario of multiple forms provided with a software product is common to many types of applications, and is not limited to accounting software products.
In many instances, independent software vendors (ISVs) desire to make customizations to software products sold by the original software company. These customizations are often in the form of customizations to the forms provided with the software product. The forms can be tailored for a more specific use of a particular client or industry by changing the names of control labels, changing sizes of the controls, etc. This customization process can be challenging for ISVs, creating resistance to use of the software product.
Form templates for software products are often stored and exposed with binary code via a software development kit or tool. Since binary code can be difficult to work with, this can be problematic for ISVs, making it challenging for the ISVs to identify controls (field types, labels, sizes, buttons, tabs, etc.) on a form. With the form templates exposed to the ISVs in the form of binary code, any customizations that the ISVs do make will be difficult to maintain in future versions of the software product, potentially creating more work for the ISVs in the future.
Another problem which is sometimes experienced by ISVs and/or end users who attempt to customize a form is that it is difficult to apply those modifications to different databases or users of the same form. For example, in an accounting software product, the accounting of multiple companies can be managed. If a particular form is customized in one customer's database, the modifications frequently do not easily transfer to the same forms when used in a second customer's database. Thus, in some instances, it may be necessary to repeat form customization efforts for each of multiple different customers, companies, databases, etc.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.